#ifndef _MESH_VIEWER_VIEWER_H_
#define _MESH_VIEWER_VIEWER_H_

#include <set>

#include <QtOpenGL/QGLWidget>

#include "mesh_color_mapper.h"


namespace mesh
{

class viewer
    : public QGLWidget
{
//  Q_OBJECT
public:

  explicit viewer(QWidget* parent = nullptr);

  virtual ~viewer(void) {}

  void add_mesh(mesh_color_mapper const& m)
  { _meshes.insert(&m); }

  void remove_mesh(mesh_color_mapper const& m)
  { _meshes.erase(&m); }

protected:

  void initializeGL(void);
  void paintGL(void);
  void resizeGL(int width, int height);

  void draw(void);

private:

  std::set<mesh_color_mapper const*> _meshes;
};

} // mesh

#endif // _MESH_VIEWER_VIEWER_H_
